package br.ucb.sigplan.action.impl;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.ucb.sigplan.action.Action;
import br.ucb.sigplan.beans.Atividade;
import br.ucb.sigplan.beans.Conteudo;
import br.ucb.sigplan.beans.Cronograma;
import br.ucb.sigplan.crud.AtividadeCrud;
import br.ucb.sigplan.crud.ConteudoCrud;
import br.ucb.sigplan.validator.Validator;

public class AdicionarAtividadeCronogramaAction implements Action {

	@Override
	public String execute(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		HttpSession session = req.getSession();
		List<String> erros = Validator.validaCronograma(req);
		
		if (erros.isEmpty()) {
			Conteudo conteudo = ConteudoCrud.findById(new Integer(req.getParameter("conteudoSelecao")));
			Atividade atividade = AtividadeCrud.searchById(new Integer(req.getParameter("data")));
			
			if (session.getAttribute("cronograma") == null) {
				session.setAttribute("cronograma", new Cronograma());	
			}
			
			erros = Validator.validaAdicaoCronograma(req, conteudo, atividade);
			
			if (erros.isEmpty()) {
				Cronograma cronograma = (Cronograma) session.getAttribute("cronograma");
				cronograma.addCronograma(atividade, conteudo);
			}
		}
		
		if (!erros.isEmpty()) {
			req.setAttribute("erros", erros);
		}
		
		if (req.getParameter("acao").equalsIgnoreCase("cadastrar")) {
			return "/jsp/professor/cronograma/profCadastraCronograma.jsp";
		}else {
			return "/jsp/professor/cronograma/profAlteraCronograma.jsp";
		}
	}

}
